package it.uniroma3.dia.ia.textcategorization.categorizer;

import java.util.Map;
import java.util.Set;

import it.uniroma3.dia.ia.textcategorization.model.Category;
import it.uniroma3.dia.ia.textcategorization.model.Text;

/**
 * 
 * This is the interface of the objects responsible for
 * categorizers building, i.e. training.
 * 
 * @author Marco Liceti.
 *
 */
public interface CategorizerBuilder {
	
	/**
	 * 
	 * Trains and returns a categorizer.
	 * 
	 * @param categories The categories the Categorizer will work against.
	 * @param trainingSet The training set.
	 * @return a newly created Categorizer instance.
	 */
	Categorizer newCategorizer(Set<Category> categories, Map<Text, Category> trainingSet);

}
